import request from './request'

/**
 * 获取寄养服务信息
 * @returns {Promise}
 */
export function getFosterInfo() {
  return request({
    url: '/foster/info',
    method: 'get'   
  })
}

/**
 * 创建寄养预约
 * @param {Object} data
 * @param {number} data.petId - 宠物ID
 * @param {string} data.startDate - 开始日期
 * @param {string} data.endDate - 结束日期
 * @param {string} data.roomType - 房间类型
 * @param {string} data.specialNeeds - 特殊需求（可选）
 * @param {string} data.emergencyContact - 紧急联系人（可选）
 * @returns {Promise}
 */
export function createFosterReserve(data) {
  return request({
    url: '/foster/reserve',
    method: 'post',
    data
  })
}

/**
 * 获取我的寄养记录
 * @param {Object} params
 * @param {number} params.pageNum - 页码
 * @param {number} params.pageSize - 每页大小
 * @param {number} params.status - 寄养状态（可选）
 * @returns {Promise}
 */
export function getMyFosterRecords(params) {
  return request({
    url: '/foster/my-records',
    method: 'get',
    params
  })
}

/**
 * 获取寄养详情
 * @param {number} id - 寄养记录ID
 * @returns {Promise}
 */
export function getFosterDetail(id) {
  return request({
    url: `/foster/${id}`,
    method: 'get'
  })
}

/**
 * 取消寄养预约
 * @param {number} id - 寄养记录ID
 * @returns {Promise}
 */
export function cancelFosterReserve(id) {
  return request({
    url: `/foster/cancel/${id}`,
    method: 'put'
  })
}

/**
 * 获取所有寄养记录（管理员）
 * @param {Object} params
 * @param {number} params.pageNum - 页码
 * @param {number} params.pageSize - 每页大小
 * @param {number} params.status - 寄养状态（可选）
 * @param {string} params.startDate - 开始日期（可选）
 * @param {string} params.endDate - 结束日期（可选）
 * @returns {Promise}
 */
export function getFosterRecords(params) {
  return request({
    url: '/foster/records',
    method: 'get',
    params
  })
}

/**
 * 更新寄养状态（管理员）
 * @param {number} id - 寄养记录ID
 * @param {number} status - 寄养状态
 * @returns {Promise}
 */
export function updateFosterStatus(id, status) {
  return request({
    url: `/foster/status/${id}`,
    method: 'put',
    params: { status }
  })
}

/**
 * 寄养签入（管理员）
 * @param {number} id - 寄养记录ID
 * @param {Object} data - 签入信息
 * @returns {Promise}
 */
export function fosterCheckIn(id, data) {
  return request({
    url: `/foster/check-in/${id}`,
    method: 'post',
    data
  })
}

/**
 * 寄养签出（管理员）
 * @param {number} id - 寄养记录ID
 * @param {Object} data - 签出信息
 * @returns {Promise}
 */
export function fosterCheckOut(id, data) {
  return request({
    url: `/foster/check-out/${id}`,
    method: 'post',
    data
  })
}

// 别名导出，兼容旧代码
export const getFosterList = getMyFosterRecords

export default {
  getFosterInfo,
  createFosterReserve,
  getMyFosterRecords,
  getFosterDetail,
  cancelFosterReserve,
  getFosterRecords,
  updateFosterStatus,
  fosterCheckIn,
  fosterCheckOut
}
